1. Technical Field
This application generally relates to caching, and more particularly to techniques used for caching in connection with servicing read misses.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host may perform a variety of data processing tasks and operations using the data storage system. For example, a host may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host systems may store and retrieve data using a data storage system containing a plurality of host interface units, disk drives, and disk interface units. Such data storage systems are provided, for example, by EMC Corporation of Hopkinton, Mass. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical units, logical devices or logical volumes. The logical units may or may not correspond to the actual physical disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
An application may execute on a host where the application performs I/O (input/output) operations issued to the data storage system. In servicing a request, such as a request to read data, the data storage system may utilizing caching. For servicing a read operation, the data storage system may first try to service the read request using data stored in cache. If the requested read data is all in cache, the read may be characterized as a read hit. Otherwise, if the requested read data is not all located in cache, the read may be characterized as a read miss whereby the data storage system may retrieve any portions of the requested data which are currently not stored in cache from physical storage device(s), store the retrieved data in cache, and then return the requested read data to the host. Data which is retrieved from physical storage may be stored in cache for servicing possible future read requests for the same data. In this manner, a first read request that is a read miss results in requested read data being stored in cache whereby a second subsequent read for the same read data now stored in cache results in a cache hit. Such caching techniques are utilized with a goal of increasing performance of the data storage system.